<template>
    <div class="pay-main">
        <div class="pay-container">
            <div class="checkout-tit">
                <h4 class="tit-txt">
                    <span class="success-icon"></span>
                    <span class="success-info">订单提交成功，请您及时付款，以便尽快为您发货~~</span>
                </h4>
                <div class="paymark">
                    <span class="fl">请您在提交订单<em class="orange time">4小时</em>之内完成支付，超时订单会自动取消。订单号：<em>{{this.TradeForm.outTradeNo}}</em></span>
                    <span class="fr"><em class="lead">应付金额：</em><em class="orange money">￥{{orderInfo()}}</em></span>
                </div>
            </div>
            <div class="checkout-info">
                <h4>重要说明：</h4>
                <ol>
                    <li>好未来支付平台目前支持<span class="zfb">支付宝</span>支付方式。</li>
                    <li>其它支付渠道正在调试中，敬请期待。</li>
                    <li>为了保证您的购物支付流程顺利完成，请保存以下支付宝信息。</li>
                </ol>
                <h4>支付宝账户信息：（很重要，<span class="save">请保存！！！</span>）</h4>
                <ul>
                    <li style="color: #df3033">默认选择支付宝支付</li>
                </ul>
            </div>
            <div class="checkout-steps">
                <div class="step-tit">
                    <h5>支付平台</h5>
                </div>
                <div class="step-cont">
                    <ul class="payType">
                        <li style="border: 3px solid red;"><img src="./images/pay2.jpg"></li>
                        <li><img src="./images/pay3.jpg"></li>
                    </ul>

                </div>
                <div class="hr"></div>

                <div class="payshipInfo">
                    <div class="step-tit">
                        <h5>支付网银</h5>
                    </div>
                    <div class="step-cont">
                        <ul class="payType">
                            <li><img src="./images/pay10.jpg"></li>
                            <li><img src="./images/pay11.jpg"></li>
                            <li><img src="./images/pay12.jpg"></li>
                            <li><img src="./images/pay13.jpg"></li>
                            <li><img src="./images/pay14.jpg"></li>
                            <li><img src="./images/pay15.jpg"></li>
                            <li><img src="./images/pay16.jpg"></li>
                            <li><img src="./images/pay17.jpg"></li>
                            <li><img src="./images/pay18.jpg"></li>
                            <li><img src="./images/pay19.jpg"></li>
                            <li><img src="./images/pay20.jpg"></li>
                            <li><img src="./images/pay21.jpg"></li>
                            <li><img src="./images/pay22.jpg"></li>

                        </ul>
                    </div>

                </div>
                <div class="hr"></div>

                <div class="submit">
                    <el-button class="btn" type="text" @click="dialogVisible = true">立即支付</el-button>
                </div>
                <div class="otherpay">
                    <div class="step-tit">
                        <h5>其他支付方式</h5>
                    </div>
                    <div class="step-cont">
                        <span>中国银联</span>
                    </div>
                </div>
            </div>
        </div>
        <el-dialog
                title="支付"
                :visible.sync="dialogVisible"
                width="30%">
            <div style="margin-left: 150px" id="code"></div>
            <span slot="footer" class="dialog-footer">
        <el-button @click.once="getQRCode">生成二维码</el-button>
    <el-button type="success" @click="testSuccess">检查成功</el-button>
  </span>
        </el-dialog>
    </div>

</template>

<script>
    import QRCode from 'qrcodejs2'
    import {qrCode, payCheck, addTrade,clearOrder,leaseHouseInfo} from '@/api/index'

    export default {
        name: 'Pay',
        data() {
            return {
                successInfo: {},
                dialogVisible: false,
                TradeForm: {
                    //订单编号
                    outTradeNo: undefined,
                    //价格
                    totalAmount: undefined,
                    //订单名称
                    subject: undefined
                },
                page: {},
                payForm: {
                    id: undefined,
                    houseId: undefined,
                    houseName: undefined,
                    userId: undefined,
                    userPhone: undefined,
                    leaseTerm: undefined,
                    price: undefined,
                    touristId: undefined,
                    touristName: undefined,
                    touristPhone: undefined
                }
            }
        },
        created() {

        },
        methods: {
            orderInfo() {
                return JSON.parse(sessionStorage.getItem("PRICE"))
            },
            describeInfo() {
                return JSON.parse(sessionStorage.getItem("ADDRESSINFO"))
                //ORDERINFO
            },
            oInfo(){
                return JSON.parse(sessionStorage.getItem("ORDERINFO"))
            },
            loginInfo(){
                return JSON.parse(sessionStorage.getItem("LoginInfo"))
            },
            // 获取当前日期的方法
            getProjectNum() {
                const projectTime = new Date() // 当前中国标准时间
                const Year = projectTime.getFullYear() // 获取当前年份 支持IE和火狐浏览器.
                const Month = projectTime.getMonth() + 1 // 获取中国区月份
                const Day = projectTime.getDate() // 获取几号
                var CurrentDate = Year
                if (Month >= 10) { // 判断月份和几号是否大于10或者小于10
                    CurrentDate += '' + Month
                } else {
                    CurrentDate += '0' + Month
                }
                if (Day >= 10) {
                    CurrentDate += '' + Day
                } else {
                    CurrentDate += '0' + Day
                }
                CurrentDate += +'' + Math.floor(Math.random() * 1000000)
                return CurrentDate
            },
            getQRCode() {
                let qr;
                this.TradeForm.outTradeNo = this.getProjectNum();
                console.log(this.TradeForm.outTradeNo)
                this.TradeForm.totalAmount = this.orderInfo();
                this.TradeForm.subject = this.describeInfo();
                qrCode(this.TradeForm).then(response => {
                    this.page = response;
                    qr = new QRCode("code", {
                        text: this.page.alipay_trade_precreate_response.qr_code,
                        width: 128,
                        height: 128,
                        colorDark: "#000000",
                        colorLight: "#ffffff",
                        correctLevel: QRCode.CorrectLevel.H
                    });
                })
            },
            testSuccess() {
                console.log(this.TradeForm.outTradeNo)
                payCheck(this.TradeForm.outTradeNo).then(response => {
                    this.successInfo = response;
                    console.log(this.successInfo)
                    if (this.successInfo.alipay_trade_query_response.code == 10000) {
                        this.payForm.id = this.TradeForm.outTradeNo;
                        this.payForm.houseId=this.oInfo().id;
                        this.payForm.houseName=this.oInfo().address+this.oInfo().addressInfo;
                        this.payForm.userId=this.oInfo().userId;
                        this.payForm.userPhone=this.oInfo().phoneNumber;
                        this.payForm.leaseTerm=this.oInfo().leaseTerm;
                        this.payForm.price=this.oInfo().price;
                        this.payForm.touristId=this.loginInfo().id;
                        this.payForm.touristName=this.loginInfo().username;
                        this.payForm.touristPhone=this.loginInfo().phone;
                        addTrade(this.payForm).then(response => {
                            if(response.code===200){
                                clearOrder(this.payForm.touristId).then(response => {
                                    if(response.code===200) {
                                        leaseHouseInfo(this.payForm.houseId).then(response => {
                                            if(response.code===200) {
                                                this.$router.push({path:'/paysuccess'})
                                            }else {
                                                this.$notify({
                                                    title: '警告',
                                                    message: response.message,
                                                    type: 'warning'
                                                });
                                            }
                                        })
                                    }else {
                                        this.$notify({
                                            title: '警告',
                                            message: response.message,
                                            type: 'warning'
                                        });
                                    }
                                })
                            }else {
                                this.$notify({
                                    title: '警告',
                                    message: response.message,
                                    type: 'warning'
                                });
                            }

                        })
                    } else {
                        this.$notify({
                            title: '警告',
                            message: '交易不存在，请重新交易',
                            type: 'warning'
                        });
                    }
                })
            }
        }
    }
</script>

<style lang="less" scoped>
    .pay-main {
        margin-bottom: 20px;

        .pay-container {
            margin: 0 auto;
            width: 1200px;

            a:hover {
                color: #4cb9fc;
            }

            .orange {
                color: #e1251b;
            }

            .money {
                font-size: 18px;
            }

            .zfb {
                color: #e1251b;
                font-weight: 700;
            }

            .checkout-tit {
                padding: 10px;

                .tit-txt {
                    font-size: 14px;
                    line-height: 21px;

                    .success-icon {
                        width: 30px;
                        height: 30px;
                        display: inline-block;
                        background: url(./images/icon.png) no-repeat 0 0;
                    }

                    .success-info {
                        padding: 0 8px;
                        line-height: 30px;
                        vertical-align: top;
                    }
                }

                .paymark {
                    overflow: hidden;
                    line-height: 26px;
                    text-indent: 38px;

                    .fl {
                        float: left;
                    }

                    .fr {
                        float: right;

                        .lead {
                            margin-bottom: 18px;
                            font-size: 15px;
                            font-weight: 400;
                            line-height: 22.5px;
                        }
                    }
                }
            }

            .checkout-info {
                padding-left: 25px;
                padding-bottom: 15px;
                margin-bottom: 10px;
                border: 2px solid #e1251b;

                h4 {
                    margin: 9px 0;
                    font-size: 14px;
                    line-height: 21px;
                    color: #e1251b;
                }

                ol {
                    padding-left: 25px;
                    list-style-type: decimal;
                    line-height: 24px;
                    font-size: 14px;
                }

                ul {
                    padding-left: 25px;
                    list-style-type: disc;
                    line-height: 24px;
                    font-size: 14px;
                }
            }

            .checkout-steps {
                border: 1px solid #ddd;
                padding: 25px;

                .hr {
                    height: 1px;
                    background-color: #ddd;
                }

                .step-tit {
                    line-height: 36px;
                    margin: 15px 0;
                }

                .step-cont {
                    margin: 0 10px 12px 20px;

                    ul {
                        font-size: 0;

                        li {
                            margin: 2px;
                            display: inline-block;
                            padding: 5px 20px;
                            border: 1px solid #ddd;
                            cursor: pointer;
                            line-height: 18px;
                        }
                    }
                }
            }

            .submit {
                text-align: center;

                .btn {
                    display: inline-block;
                    padding: 15px 45px;
                    margin: 15px 0 10px;
                    font: 18px "微软雅黑";
                    font-weight: 700;
                    border-radius: 0;
                    background-color: #e1251b;
                    border: 1px solid #e1251b;
                    color: #fff;
                    text-align: center;
                    vertical-align: middle;
                    cursor: pointer;
                    user-select: none;
                    text-decoration: none;
                }
            }
        }
    }
</style>
